2007-03-23 Matthias Clasen <mclasen@redhat.com>
- * gtk/gtkfilechooserdefault.c: Add a keybinding to
+ * gtk/gtkfilechooserdefault.c: Add a keybinding (C-h) to
+ toggle whether to show hidden files. (#344657,
+ Wouter Bolsterlee, Priit Laes, et al)
+
+2007-03-23 Matthias Clasen <mclasen@redhat.com>
+
+ * gtk/gtkfilechooserdefault.c: Add a keybinding (C-l) to
toggle the visibility of the location entry. (#383354,
John Pye, patch by Carlos Garnacho)
#include <string.h>
#include <time.h>
-\f
#ifdef HAVE_UNISTD_H
#include <unistd.h>
#define profile_msg(x, y)
#endif
-\f
+
typedef struct _GtkFileChooserDefaultClass GtkFileChooserDefaultClass;
DESKTOP_FOLDER,
QUICK_BOOKMARK,
LOCATION_TOGGLE_POPUP,
+ SHOW_HIDDEN,
LAST_SIGNAL
};
static void desktop_folder_handler (GtkFileChooserDefault *impl);
static void quick_bookmark_handler (GtkFileChooserDefault *impl,
gint bookmark_index);
+static void show_hidden_handler (GtkFileChooserDefault *impl);
static void update_appearance (GtkFileChooserDefault *impl);
static void set_current_filter (GtkFileChooserDefault *impl,
GtkTreeModel *child_model,
GtkTreePath *root);
-\f
+
G_DEFINE_TYPE_WITH_CODE (GtkFileChooserDefault, _gtk_file_chooser_default, GTK_TYPE_VBOX,
G_IMPLEMENT_INTERFACE (GTK_TYPE_FILE_CHOOSER,
NULL, NULL,
_gtk_marshal_VOID__INT,
G_TYPE_NONE, 1, G_TYPE_INT);
+ signals[SHOW_HIDDEN] =
+ _gtk_binding_signal_new ("show-hidden",
+ G_OBJECT_CLASS_TYPE (class),
+ G_SIGNAL_RUN_FIRST | G_SIGNAL_ACTION,
+ G_CALLBACK (show_hidden_handler),
+ NULL, NULL,
+ _gtk_marshal_VOID__VOID,
+ G_TYPE_NONE, 0);
binding_set = gtk_binding_set_by_class (class);
GDK_v, GDK_CONTROL_MASK,
"location-popup-on-paste",
0);
-
gtk_binding_entry_add_signal (binding_set,
GDK_Up, GDK_MOD1_MASK,
"up-folder",
GDK_d, GDK_MOD1_MASK,
"desktop-folder",
0);
+ gtk_binding_entry_add_signal (binding_set,
+ GDK_h, GDK_CONTROL_MASK,
+ "show-hidden",
+ 0);
for (i = 0; i < 10; i++)
gtk_binding_entry_add_signal (binding_set,
switch_to_shortcut (impl, bookmark_pos);
}
-\f
+static void
+show_hidden_handler (GtkFileChooserDefault *impl)
+{
+ g_object_set (impl,
+ "show-hidden", !impl->show_hidden,
+ NULL);
+}
+
/* Drag and drop interfaces */